package com.fengyun;

import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;

/**
 * @author 风风
 *
 * <p>
 * 一、spring-demo01,测试环境搭建是否成功
 * 1、 JDK 11
 * 2、 Gradle 5.6.3
 * 3、 spring 源码下载:https://gitee.com/mirrors/Spring-Framework.git
 * <p>
 * 二、出现的问题：控制台中文乱码
 * 1、 idea中设置  Help  --> Edit Custom VM Options 添加： -Dfile.encoding=UTF-8
 * 2、 setting --> edit --> file encoding 设置为UTF-8
 * <p>
 * 三、build.gradle中添加
 * //    依赖spring-context模块
 * compile(project(":spring-context"))
 * compile("org.aspectj:aspectjrt:1.9.5")
 * compile("org.aspectj:aspectjweaver:1.9.5")
 */
public class Main {
	public static void main(String[] args) {
		/**
		 * IOC容器的初始化的三种方式
		 * XmlBeanFactory
		 * ClassPathXmlApplicationContext
		 * AnnotationConfigApplicationContext
		 *
		 * ———————————————————————————————————
		 * 由于解析过程比较复杂, 分为四篇播客进行解析:
		 *
		 * 初始化方式一: XmlBeanFactory
		 * 初始化方式二: ClassPathXmlApplicationContext
		 * 初始化方式三: AnnotationConfigApplicationContext[包路径配置方式]
		 * 初始化方式四: AnnotationConfigApplicationContext[Java配置类方式]
		 * ———————————————————————————————————
		 */
		// todo 根据spring配置文件，加载bean
		ApplicationContext applicationContext = new ClassPathXmlApplicationContext("classpath:spring-demo01.xml");
		// todo 获取bean实例
		UserService userService = (UserService) applicationContext.getBean("userService");
		User user = userService.getBuId(1);
		System.out.println(user);
	}
}
